Skip to content
This repository has been archived by the owner on Sep 1, 2020. It is now read-only.

Latest commit

 

History

History
16 lines (11 loc) · 889 Bytes

2.3.18 - open_eof_check.md

File metadata and controls

16 lines (11 loc) · 889 Bytes

open_eof_check

打开EOF检测,此选项将检测客户端连接发来的数据,当数据包结尾是指定的字符串时才会投递给Worker进程。否则会一直拼接数据包,直到超过缓存区或者超时才会中止。当出错时swoole底层会认为是恶意连接,丢弃数据并强制关闭连接。

array(
'open_eof_check' => true, //打开EOF检测
'package_eof' => "\r\n", //设置EOF
)

常见的Memcache/SMTP/POP等协议都是以\r\n结束的,就可以使用此配置。开启后可以保证Worker进程一次性总是收到一个或者多个完整的数据包。

EOF检测不会从数据中间查找eof字符串,所以Worker进程可能会同时收到多个数据包,需要在应用层代码中自行explode("\r\n", $data) 来拆分数据包
1.7.15版本增加了open_eof_split,支持从数据中查找EOF,并切分数据